#ifndef _UFO_DATA_STACK_H_
#define _UFO_DATA_STACK_H_

#include "handle.h"

DECLARE_HANDLE(UFO_Stack);

UFO_Stack ufoStackCreate(int elementSize);

int ufoStackPush(UFO_Stack _stack, void* element);

void* ufoStackPop(UFO_Stack _stack);

int ufoStackGetSize(UFO_Stack _stack);

int ufoStackReSize(UFO_Stack _stack, int size);

void* ufoStackGetElement(UFO_Stack _stack, int index);

void* ufoStackTop(UFO_Stack _stack);

#endif